<template>
        <slot v-if="show"/>
</template>
<script setup>
    import { ref,onMounted,nextTick } from 'vue';
    import { ElMessageBox } from 'element-plus'
    import { useUserStore } from '@/pinia/modules/user'
    import { emitter } from '@/utils/bus.js'
    const userStore = useUserStore()
    // code对应权限树接口中的kcode
    // tips提示信息
    // popup弹窗提示tips
    const props = defineProps(['code','tips','popup']) 
    const show = ref(false)

    const plists = userStore.userInfo.permissionUserList // 权限数组
    if(Array.isArray(props.code)){ // 是数组
        for(let i=0;i<props.code.length;i++){
            const sitem = props.code[i]
            const fitem = plists.find(item =>(item.code && item.code.indexOf(sitem)>-1))
            if(fitem){ // 说明存在权限，则显示(只有有一个存在，就显示)
                show.value = true
                break  
            } 
        }
    }else{ // 字符串
        const fitem = plists.find(item =>(item.code && item.code.indexOf(props.code)>-1))
        if(fitem){ // 说明存在权限，则显示
            show.value = true
        } 
    }


    const init = async ()=>{
        await nextTick()
        if(!show.value){
            ElMessageBox.confirm(props.tips,'提示',
            {
                confirmButtonText: '确定',
                showCancelButton:false,
                type: 'warning',
            }
            ).then(async () => {
                emitter.emit('closeThisPage') // 关闭当前页面
            }).catch(() => {
                
            })
        }
    }
    defineExpose({init})
    
</script>
<style lang="scss">
    .authtagstyle{
        display: inline;
    }
</style>